#include <unistd.h>
#include "utils.h"
#include "Image.h"
#define K 30

int main (int argc, char** argv)
{
	sImage* im;
	sImage* imHisto;
	sImage* imHistoCumul;
	sImage* imModHisto;
	sImage* imModHistoCumul;

	/* Test des arguments */
	if ( argc != 7 )
	{
		printf("\nUsage :\n %s file_to_read file_modifiE_to_write HISTO_to_write HISTO_Cumul_to_write ModifiE_HISTO_to_write ModifiE_HISTO_Cumul_to_write\n\n", argv[0]);
		exit(EXIT_FAILURE);
	}

	/* Lecure de l'image*/
	im=LoadImageFromPnm(argv[1]);

	imHisto=Histo(im, 256, 256, 1, 1);

	imHistoCumul=HistoCumul(im, 256, 256, 1, 1);

	Cumul(im);

	imModHisto=Histo(im, 256, 256, 1, 1);

	imModHistoCumul=HistoCumul(im, 256, 256, 1, 1);

	/* Save modified image and histogramme image */
	SaveImageToPnm(im,argv[2],PGM_BINARY);printf("\n\nOK\n\n");
	SaveImageToPnm(imHisto,argv[3],PBM_BINARY);
	SaveImageToPnm(imHistoCumul,argv[4],PBM_BINARY);
	SaveImageToPnm(imModHisto,argv[5],PBM_BINARY);
	SaveImageToPnm(imModHistoCumul,argv[6],PBM_BINARY);

	/* on pense � lib�rer la m�moire*/
	ReleasesImage(im);
	ReleasesImage(imHisto);
	ReleasesImage(imHistoCumul);
	ReleasesImage(imModHisto);
	ReleasesImage(imModHistoCumul);
	
	return 0;
}
